/**
 * 统计数据缓存清理脚本
 * 用于定时清除所有缓存文件，使凌晨0点后的查询重新生成缓存
 */

const fs = require('fs');
const path = require('path');

// 缓存文件目录
const CACHE_DIR = path.join(__dirname, '../cache/stats');

/**
 * 清除所有缓存文件
 */
function clearAllCache() {
  console.log('开始清除统计数据缓存文件...');
  console.log(`当前时间: ${new Date().toISOString()}`);
  
  if (!fs.existsSync(CACHE_DIR)) {
    console.log(`缓存目录不存在: ${CACHE_DIR}`);
    fs.mkdirSync(CACHE_DIR, { recursive: true });
    console.log('已创建缓存目录');
    return;
  }
  
  try {
    // 读取缓存目录中的所有文件
    const files = fs.readdirSync(CACHE_DIR);
    
    if (files.length === 0) {
      console.log('缓存目录为空，无需清除');
      return;
    }
    
    // 遍历所有文件并删除
    let deletedCount = 0;
    for (const file of files) {
      if (file.endsWith('.json')) {
        fs.unlinkSync(path.join(CACHE_DIR, file));
        deletedCount++;
      }
    }
    
    console.log(`成功清除 ${deletedCount} 个缓存文件`);
  } catch (error) {
    console.error(`清除缓存文件失败: ${error.message}`);
    process.exit(1);
  }
}

// 如果直接运行脚本，执行清除操作
if (require.main === module) {
  clearAllCache();
}

module.exports = {
  clearAllCache
}; 